package com.juntuo.util;

import java.util.HashMap;
import java.util.Map;

public class LatLonUtil {

    /**
     * 根据距离获取到周边范围的4个坐标点 distance单位千米
     * @param distance
     * @return
     */
    public static Map<String,Double> getMinAndMaxLatLon(Double latitude,Double longitude,Double distance){
        double r = 6371;//地球半径千米
        double dlng =  2*Math.asin(Math.sin(distance/(2*r))/Math.cos(latitude*Math.PI/180));
        dlng = dlng*180/Math.PI;//角度转为弧度
        double dlat = distance/r;
        dlat = dlat*180/Math.PI;
        double minlat =latitude-dlat;
        double maxlat = latitude+dlat;
        double minlng = longitude -dlng;
        double maxlng = longitude + dlng;
        Map<String,Double> map = new HashMap<>(4);
        map.put("minlat",minlat);
        map.put("maxlat",maxlat);
        map.put("minlng",minlng);
        map.put("maxlng",maxlng);
        return map;
    }
}
